package com.unalm.examensustitutorio.util.entity;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * The persistent class for the tb_usuario database table.
 * 
 */
@Entity
@Table(name = "tb_usuario")
public class EUsuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "COD_USUARIO", unique = true, nullable = false)
	private String str_codUsuario;

	@Column(name = "APE_MAT_USU")
	private String str_apeMatUsu;

	@Column(name = "APE_PAT_USU")
	private String str_apePatUsu;

	@Column(name = "DIRECCION_USU")
	private String str_direccionUsu;

	@Column(name = "EMAIL_USU")
	private String str_emailUsu;

	@Column(name = "NOMBRE_USU")
	private String str_nombreUsu;

	@Column(name = "PWD_USU")
	private String str_pwdUsu;

	@Column(name = "SEXO_USU")
	private String str_sexoUsu;

	@Column(name = "TELEFONO_USU")
	private String str_telefonoUsu;

	@Column(name = "TIPO_USU")
	private String str_tipoUsu;

	@Column(name = "APAGO_USU")
	private int int_pagoUSU;

	@Column(name = "AEXAPLAZADO_USU")
	private int int_examenPlazadoUSU;

	@Column(name = "AEXEXTEMPORANEO_USU")
	private int int_examenExtemporaneoUSU;

	@Column(name = "DISP_USU")
	private int int_dispUSU;

	// bi-directional many-to-one association to ECiclo
	@OneToMany(mappedBy = "tbUsuario")
	private List<ECiclo> tbCiclos;

	// bi-directional many-to-one association to EDetalleNota
	@OneToMany(mappedBy = "tbUsuario")
	private List<EDetalleNota> tbDetalleNotas;

	// bi-directional many-to-one association to EDisponibilidadDocente
	@OneToMany(mappedBy = "tbUsuario")
	private List<EDisponibilidadDocente> tbDisponibilidadDocentes;

	// bi-directional many-to-one association to EInscripcion
	@OneToMany(mappedBy = "tbUsuario", fetch = FetchType.LAZY)
	private List<EInscripcion> tbInscripcions;

	public EUsuario() {
	}

	public String getStr_codUsuario() {
		return this.str_codUsuario;
	}

	public void setStr_codUsuario(String str_codUsuario) {
		this.str_codUsuario = str_codUsuario;
	}

	public String getStr_apeMatUsu() {
		return this.str_apeMatUsu;
	}

	public void setStr_apeMatUsu(String str_apeMatUsu) {
		this.str_apeMatUsu = str_apeMatUsu;
	}

	public String getStr_apePatUsu() {
		return this.str_apePatUsu;
	}

	public void setStr_apePatUsu(String str_apePatUsu) {
		this.str_apePatUsu = str_apePatUsu;
	}

	public String getStr_direccionUsu() {
		return this.str_direccionUsu;
	}

	public void setStr_direccionUsu(String str_direccionUsu) {
		this.str_direccionUsu = str_direccionUsu;
	}

	public String getStr_emailUsu() {
		return this.str_emailUsu;
	}

	public void setStr_emailUsu(String str_emailUsu) {
		this.str_emailUsu = str_emailUsu;
	}

	public String getStr_nombreUsu() {
		return this.str_nombreUsu;
	}

	public void setStr_nombreUsu(String str_nombreUsu) {
		this.str_nombreUsu = str_nombreUsu;
	}

	public String getStr_pwdUsu() {
		return this.str_pwdUsu;
	}

	public void setStr_pwdUsu(String str_pwdUsu) {
		this.str_pwdUsu = str_pwdUsu;
	}

	public String getStr_sexoUsu() {
		return this.str_sexoUsu;
	}

	public void setStr_sexoUsu(String str_sexoUsu) {
		this.str_sexoUsu = str_sexoUsu;
	}

	public String getStr_telefonoUsu() {
		return this.str_telefonoUsu;
	}

	public void setStr_telefonoUsu(String str_telefonoUsu) {
		this.str_telefonoUsu = str_telefonoUsu;
	}

	public String getStr_tipoUsu() {
		return this.str_tipoUsu;
	}

	public void setStr_tipoUsu(String str_tipoUsu) {
		this.str_tipoUsu = str_tipoUsu;
	}

	public List<ECiclo> getTbCiclos() {
		return tbCiclos;
	}

	public void setTbCiclos(List<ECiclo> tbCiclos) {
		this.tbCiclos = tbCiclos;
	}

	public List<EDetalleNota> getTbDetalleNotas() {
		return tbDetalleNotas;
	}

	public void setTbDetalleNotas(List<EDetalleNota> tbDetalleNotas) {
		this.tbDetalleNotas = tbDetalleNotas;
	}

	public List<EDisponibilidadDocente> getTbDisponibilidadDocentes() {
		return tbDisponibilidadDocentes;
	}

	public void setTbDisponibilidadDocentes(
			List<EDisponibilidadDocente> tbDisponibilidadDocentes) {
		this.tbDisponibilidadDocentes = tbDisponibilidadDocentes;
	}

	public List<EInscripcion> getTbInscripcions() {
		return tbInscripcions;
	}

	public void setTbInscripcions(List<EInscripcion> tbInscripcions) {
		this.tbInscripcions = tbInscripcions;
	}

	public int getInt_pagoUSU() {
		return int_pagoUSU;
	}

	public void setInt_pagoUSU(int int_pagoUSU) {
		this.int_pagoUSU = int_pagoUSU;
	}

	public int getInt_examenPlazadoUSU() {
		return int_examenPlazadoUSU;
	}

	public void setInt_examenPlazadoUSU(int int_examenPlazadoUSU) {
		this.int_examenPlazadoUSU = int_examenPlazadoUSU;
	}

	public int getInt_examenExtemporaneoUSU() {
		return int_examenExtemporaneoUSU;
	}

	public void setInt_examenExtemporaneoUSU(int int_examenExtemporaneoUSU) {
		this.int_examenExtemporaneoUSU = int_examenExtemporaneoUSU;
	}

	public String getNombreCompleto() {

		return str_nombreUsu + " " + str_apePatUsu + " " + str_apeMatUsu;

	}

	public int getInt_dispUSU() {
		return int_dispUSU;
	}

	public void setInt_dispUSU(int int_dispUSU) {
		this.int_dispUSU = int_dispUSU;
	}

}